package com.hongdee.scm.car.service;

import com.hongdee.scm.car.entity.TScmCar;

import java.util.List;
import java.util.Map;

/**
 * Created by Mr. Xu on 2017/5/4.
 */
public interface ITScmCarService {
    /**
     * 保存修改
     * @param data
     * @param uid
     * @return
     * @throws Exception
     */
    public TScmCar saveOrUpdate(TScmCar data, String uid) throws Exception;
    /**
     * 整车信息
     * @param data
     * @param start
     * @param limit
     * @param uid
     * @return
     * @throws Exception
     */
    public Map page(Map data, String start, String limit, String uid) throws Exception;
    /**
     * 整车信息详细
     * @param id
     * @param uid
     * @return
     * @throws Exception
     */
    public Map info(String id, String uid) throws Exception;
    /**
     * 车辆列表查询
     * @param uid
     * @param data
     * @return
     * @throws Exception
     */
    public List list(String uid,Map data ) throws Exception;


    /**
     * 待入库车辆列表查询
     * @param uid
     * @param data
     * @return
     * @throws Exception
     */
    public List listCar(String uid,Map data ) throws Exception;


    /**
     * 整车信息导入第二数据源分页
     * @param start
     * @param limit
     * @param oid
     * @return
     * @throws Exception
     */
    public Map impPage(String start, String limit, String oid) throws Exception;
    /**
     * @param data 核销数据的实体
     * @return Map
     * @throws Exception
     * @desc   整车信息批量导入确认
     * @author 徐钦勇
     */
    public List impConfirms(List<Map<Object, String>> data, String uid) throws Exception;
    /**
     * @return
     * @throws Exception
     * @desc   整车信息全部导入确认
     * @author 徐钦勇
     */
    public List impConfirmAll(String uid) throws Exception;
    /**
     * 整车导入批量删除
     * @param data
     * @param uid
     * @throws Exception
     */
    public void impDels(List<Map<Object, String>> data, String uid) throws Exception;
    /**
     * @return
     * @throws Exception
     * @desc 删除整车信息全部导入数据
     * @author 徐钦勇
     */
    public void impDelAll(String uid) throws Exception;
    /**
     * 暂估价格维护
     * @param id
     * @param price
     * @param uid
     * @throws Exception
     */
    public void  updateEstimatePprice (String id,String price,String uid) throws Exception;
    /**
     * 暂时刷新没有车型ID车辆的车型ID
     * @param uid
     * @throws Exception
     */
    public void flashAllCarModelId (String uid) throws Exception;
    /**
     * 暂时刷新没有配置ID车辆的配置ID
     * @param uid
     * @throws Exception
     */
    public void flashAllCarConfigId (String uid) throws Exception;
    /**
     * 批量删除导入数据错误车辆信息
     * @param ids
     * @param uid
     * @throws Exception
     */
    public void deleteUserlessCar (String[] ids ,String uid) throws Exception;
    /**
     * 车辆分页
     *
     * @param data
     * @param start
     * @param limit
     * @param status 导入默认为0采购在途1在库2已售3调拨在途
     * @param uid
     * @return
     * @throws Exception
     */
    public Map page1(Map data,String status, String start, String limit, String uid) throws Exception;
    /**
     * 刷新车辆内饰名称和外观名称
     * @throws Exception
     */
    public void refershCarAppearanceAndInterior(String uid) throws Exception;
    /**
     * 刷新暂估价格
     */
    public void refreshEstimatePrice(String uid) throws Exception;
    /**
     * 添加验车单打印次数
     * @return
     * @throws Exception
     */
    public boolean addValidateNum(String pid) throws Exception;

    /**
     * 更新车辆财务信息：价格和相关状态
     * @return
     * @throws Exception
     */
    public boolean updateFinanceInfo(String id, String type, String price) throws Exception;

    /**
     * 暂估入库确认
     * @return
     * @throws Exception
     */
    public boolean financeConfirm(String[] ids);


    public Map CarMIGO(Map data, String start, String limit, String uid) throws Exception;

    public void refreshCarSMC(String uid) throws Exception;

    public List<TScmCar> queryByVin(String vin,String uid) throws Exception;

}
